
public class Pruebamatriz {
	public static void llenarmatrizcaracol(int mat[][],int n,int m)
    {
        int fil,col,cont,k; //Nos creamos variables de tipo entero
        cont=1;                   //Inicializamos un contador
        for(k=0;k<m;k++)
        {
        	fil=k;
        	for(col=k;col<=(m-1-k);col++)
        	{
        		mat[fil][col]=cont;
        		cont++;
        	}
        	col=m-1-k;
        	for(fil=k+1;fil<=n-1-k;fil++) 
        	{
        		mat[fil][col]=cont;
        		cont++;
        	}
        	fil=n-1-k;
        	for(col=m-2-k;col>=k;col--)
        	{
        		mat[fil][col]=cont;
        		cont++;
        	}
        	col=k;
        	for(fil=n-2-k;fil>=k+1;fil--)
        	{
        		mat[fil][col]=cont;
        		cont++;
        	}
        }
        return;
    }


//metodo mostrar matriz
public static void mostrarmatriz(int mat[][],int n,int m)
    {             
        for(int fil=0;fil<m;fil++)
        {
            System.out.println("");
            for(int col=0;col<n;col++)
            {
            System.out.print("\t"+mat[fil][col]);
            }
        }        
        return;
    }
public static void main(String args[])
{
        int mat[][];                              //Creamos una matriz
        int n,m;                                   //Creamos variables
        mat=new int[1000][1000];        //Inicializamos la matriz
        n=5;                                       //Inicializamos las variables
        m=5;
        llenarmatrizcaracol(mat,n,m);         //Llamamos el metodo para llenar la matriz
        mostrarmatriz(mat,n,m);          //Imprimimos en pantalla la matriz
}

}
